<?php

/**
 * Description of OrderDataManager
 *
 * @author rocco
 */
require_once 'Utente.php';
require_once 'WebApplicationInit.php';

//require_once '../moduliHTML/templateMail.php';

class MailManager {

  private static $instance;

  public static function getInstance() {
    if (self::$instance == null) {
      $c = __CLASS__;
      self::$instance = new $c;
    }
    return self::$instance;
  }

  /*
   * sendMailRegistrazioneUtenteFinaleEAzienda
   * 
   * manda una mail all'utente privato o azienda alla registrazione 
   */

  public function sendActivationMail($utente) {
     $result = 0;
    try {
      $loadProperties = WebApplicationInit::getInstance();
      $commercialEmail = $loadProperties->getCommercialMail();
      $commercialName = $loadProperties->getCommercialName();
      $oggetto = "Nuova registrazione su www.wind24/" .$loadProperties->getInternalPath() . ".it";
      $emailDestinatario = $utente->email;
      $header = "";
      $header .= "Reply-To: " . $commercialName . " <" . $commercialEmail . ">\r\n";
      $header .= "Return-Path: www.wind24/" .$loadProperties->getInternalPath() . ".it <'. $commercialEmail . '>\r\n";
      $header .= "From: " . $commercialName . " <" . $commercialEmail . ">\r\n";
      $header .= "Organization: wind24/" .$loadProperties->getInternalPath() . ".it\r\n";
      $header .= "Content-Type: text/html\r\n";
      
      $messaggio = "Gentile " . $utente->nome . " " . $utente->cognome. ",<br /><br />il tuo account sul sito www.wind24/" .$loadProperties->getInternalPath() . ".it è stato attivato.<br/><br/> Puoi iniziare ad usare i nostri servizi. Non esiti a contattarci in caso di problemi.<br/><br/>Saluti<br/>wind24.it Staff";

      mail($emailDestinatario, $oggetto, $messaggio, $header);
    } catch (Exception $ex) {
      error_log("Errore nell'invio della mail per : " . $emailDestinatario . " oggetto : " . $oggetto . " messaggio " . $messaggio);
      //echo "Errore nell'invio della mail per : " . $emailDestinatario . " oggetto : " . $oggetto . " messaggio " . $messaggio;
      $result = 1;
    }

    return $result;
  }
  
  public function sendRegistrationMailToFinalUser($utente) {
    $result = 0;
    try {
      $loadProperties = WebApplicationInit::getInstance();
      $commercialEmail = $loadProperties->getCommercialMail();
      $commercialName = $loadProperties->getCommercialName();
      $oggetto = "Nuova registrazione su www.wind24/" .$loadProperties->getInternalPath() . ".it";
      $emailDestinatario = $utente->email;
      $header = "";
      $header .= "Reply-To: " . $commercialName . " <" . $commercialEmail . ">\r\n";
      $header .= "Return-Path: wind24/" .$loadProperties->getInternalPath() . ".it <'. $commercialEmail . '>\r\n";
      $header .= "From: " . $commercialName . " <" . $commercialEmail . ">\r\n";
      $header .= "Organization: wind24/" .$loadProperties->getInternalPath() . ".it\r\n";
      $header .= "Content-Type: text/html\r\n";
      
      $messaggio = "Gentile " . $utente->nome . " " . $utente->cognome. ",<br /><br />sei stato registrato sul sito www.wind24/" .$loadProperties->getInternalPath() . ".it .<br/><br/> Attualmente il tuo account è disattivo.<br/>Non appena l'amministrazione attiverà il tuo account riceverai una mail di conferma.<br/><br/>Saluti<br/>wind24.it Staff";

      mail($emailDestinatario, $oggetto, $messaggio, $header);
    } catch (Exception $ex) {
      error_log("Errore nell'invio della mail per : " . $emailDestinatario . " oggetto : " . $oggetto . " messaggio " . $messaggio);
      //echo "Errore nell'invio della mail per : " . $emailDestinatario . " oggetto : " . $oggetto . " messaggio " . $messaggio;
      $result = 1;
    }

    return $result;
  }
  
  public function sendRegistrationMailToAdmin($utente) {
    $result = 0;
    try {
      $loadProperties = WebApplicationInit::getInstance();
      $commercialEmail = $loadProperties->getCommercialMail();
      $commercialName = $loadProperties->getCommercialName();
      $oggetto = "Nuova registrazione su www.wind24/" .$loadProperties->getInternalPath() . ".it";
      
      $header = "";
      $header .= "Reply-To: " . $utente->nome . " " . $utente->cognome . " <" . $utente->email . ">\r\n";
      $header .= "Return-Path: www.wind24/" .$loadProperties->getInternalPath() . ".it <'. $commercialEmail . '>\r\n";
      $header .= "From: " . $utente->nome . " " . $utente->cognome . " <" . $utente->email . ">\r\n";
      $header .= "Organization: wind24/" .$loadProperties->getInternalPath() . ".it\r\n";
      $header .= "Content-Type: text/html\r\n";
      
      $messaggio = $utente->nome . " " . $utente->cognome. " si è registrato sul sito www.wind24/" .$loadProperties->getInternalPath() . ".it . Per attivarlo andare nella ricerca utente, visualizzare il suo profilo e attivarlo. Si consiglia di cliccare sul pulsante di notifica all'utente per informarlo dell'avvenuta attivazione";

      mail($commercialEmail, $oggetto, $messaggio, $header);
    } catch (Exception $ex) {
      error_log("Errore nell'invio della mail per : " . $utente->email . " oggetto : " . $oggetto . " messaggio " . $messaggio);
      //echo "Errore nell'invio della mail per : " . $emailDestinatario . " oggetto : " . $oggetto . " messaggio " . $messaggio;
      $result = 1;
    }

    return $result;
  }

  public function sendEmailMessage($emailDestinatario, $oggetto, $messaggio) {
    $result = 0;
    try {
      $loadProperties = WebApplicationInit::getInstance();
      $commercialEmail = $loadProperties->getCommercialMail();
      $commercialName = $loadProperties->getCommercialName();
      $header = "";
      $header .= "Reply-To: " . $commercialName . " <" . $commercialEmail . ">\r\n";
      $header .= "Return-Path: www.wind24/" .$loadProperties->getInternalPath() . ".it <'. $commercialEmail . '>\r\n";
      $header .= "From: " . $commercialName . " <" . $commercialEmail . ">\r\n";
      $header .= "Organization: wind24/" .$loadProperties->getInternalPath() . ".it\r\n";
      $header .= "Content-Type: text/html\r\n";

      mail($emailDestinatario, $oggetto, $messaggio, $header);
    } catch (Exception $ex) {
      error_log("Errore nell'invio della mail per : " . $emailDestinatario . " oggetto : " . $oggetto . " messaggio " . $messaggio);
      //echo "Errore nell'invio della mail per : " . $emailDestinatario . " oggetto : " . $oggetto . " messaggio " . $messaggio;
      $result = 1;
    }

    return $result;
  }

  function do_post($host, $uri, $values) {

    if (!($socket = fsockopen($host, 80, $errno, $errstr)))
      return false;

    $reqbody = '';
    while (list($k, $v) = each($values))
      $reqbody .= $k . "=" . urlencode($v) . "&";
    $contentlength = strlen($reqbody);
    $req =
            "POST $uri HTTP/1.0\r\n" .
            "Host: $host\n" . "User-Agent: SMS POST AGENT\r\n" .
            "Content-Type: application/x-www-form-urlencoded\r\n" .
            "Content-Length: $contentlength\r\n\r\n" .
            $reqbody . "\r\n";

    if (fputs($socket, $req) < 0)
      return false;
    while (!feof($socket))
      $result[] = trim(fgets($socket, 4096));
    fclose($socket);

    if (is_array($result))
      return $result;
    return false;
  }

  function sendSms($login, $password, $message, $dest, $sender, $flash, $quality, $notify, $wappush, $quantity, $tspan, $userip) {

    $VALS = array(
        'login' => $login,
        'password' => $password,
        'message' => $message,
        'dest' => $dest,
        'sender' => $sender,
        'flash' => $flash,
        'quality' => $quality,
        'notify' => $notify,
        'wappush' => $wappush,
        'quantity' => $quantity,
        'timespan' => $tspan,
        'userip' => $userip
    );

    $resp = MailManager::getInstance()->do_post("www.pannellosms.com", "/smspost.php", $VALS);

    if (!is_array($resp))
      return array(false, 0);
    if (!ereg("OK", $resp[0]))
      return array(false, 0);
    foreach ($resp as $ll)
      if (ereg("^CREDITS:(.*)$", $ll, $p))
        return array(true, $p[1]);
    return array(false, 0);
  }

}

?>
